//package com.oniontech.stamptour;
//
//import java.io.ByteArrayOutputStream;
//import java.nio.charset.Charset;
//import java.util.Date;
//import java.util.Hashtable;
//import java.util.Locale;
//
//import org.json.JSONException;
//import org.json.JSONObject;
//import org.krysalis.barcode4j.impl.code128.Code128Bean;
//import org.krysalis.barcode4j.tools.UnitConv;
//
//import android.annotation.SuppressLint;
//import android.annotation.TargetApi;
//import android.app.ProgressDialog;
//import android.content.Intent;
//import android.content.IntentFilter;
//import android.nfc.NdefMessage;
//import android.nfc.NdefRecord;
//import android.nfc.NfcAdapter;
//import android.nfc.NfcAdapter.CreateNdefMessageCallback;
//import android.nfc.NfcAdapter.OnNdefPushCompleteCallback;
//import android.nfc.NfcEvent;
//import android.os.Build;
//import android.os.Bundle;
//import android.util.Log;
//import android.view.View;
//import android.view.View.OnClickListener;
//import android.view.animation.Animation;
//import android.view.animation.LinearInterpolator;
//import android.view.animation.RotateAnimation;
//import android.widget.ImageView;
//import android.widget.TextView;
//
//import com.oniontech.stamptour.common.ui.DefaultActivity;
//import com.oniontech.stamptour.module.nfc.LLCPStateListener;
//import com.oniontech.stamptour.module.nfc.LLCPStateReceiver;
//
///**
// * NFC & 바코드 Activity.
// *
// * @author limsy
// * @author limsy
// * @since 2013/02/04
// */
//public class NdefSendActivity extends DefaultActivity implements
//        LLCPStateListener, CreateNdefMessageCallback, OnNdefPushCompleteCallback {
//
//    /**
//     * Log용 TAG 변수.
//     */
//    static final String TAG = "NfcPaymentRequest";
//
//    /**
//     * NfcAdapter 변수.
//     */
//    private NfcAdapter mAdapter;
//
//    /**
//     * NdefMessage 변수.
//     */
//    private NdefMessage mMessage;
//
//    /**
//     * 리더기 응답여부 flag.
//     */
//    private LLCPStateReceiver m_receiverLLCPState = null;
//
//    /**
//     * 생성자.
//     *
//     * @author limsy
//     * @since 2013/02/04
//     */
//    public NdefSendActivity() {
//        super(NdefSendActivity.class.getSimpleName());
//    }
//
//    /* (non-Javadoc)
//     * @see kr.kcp.smartmobile.common.ui.DefaultActivity#onCreate(android.os.Bundle)
//     */
//    public void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setUi();
//    }
//
//    /**
//     * 초기화면 설정.
//     *
//     * @author limsy
//     * @since 2013/02/04
//     */
//    public void setUi() {
//
//        mAdapter = NfcAdapter.getDefaultAdapter(this);
//
//        // 사용하였다고 가정
//        NdefSendActivity.this.setResult(RESULT_OK);
//
//    }
//
//    /**
//     * Sets the ndef push.
//     */
//    @TargetApi(14)
//    public void setNdefPush() {
//        mAdapter.setNdefPushMessageCallback(this, this);
//        mAdapter.setOnNdefPushCompleteCallback(this, this);
//    }
//
//    public void onNdefPushComplete(NfcEvent event) {
//        Log.e(TAG, "Ndef push 완료");
//    }
//
//    // NFC Text 형 Record 반환
//
//    /**
//     * New text record.
//     *
//     * @param text         the text
//     * @param locale       the locale
//     * @param encodeInUtf8 the encode in utf8
//     * @return the ndef record
//     */
//    public static NdefRecord newTextRecord(String text, Locale locale,
//                                           boolean encodeInUtf8) {
//        byte[] langBytes = locale.getLanguage().getBytes(
//                Charset.forName("US-ASCII"));
//
//        Charset utfEncoding = encodeInUtf8 ? Charset.forName("EUC-KR")
//                : Charset.forName("EUC-KR");
//        byte[] textBytes = text.getBytes(utfEncoding);
//
//        int utfBit = encodeInUtf8 ? 0 : (1 << 7);
//        char status = (char) (utfBit + langBytes.length);
//
//        byte[] data = new byte[1 + langBytes.length + textBytes.length];
//        data[0] = (byte) status;
//        System.arraycopy(langBytes, 0, data, 1, langBytes.length);
//        System.arraycopy(textBytes, 0, data, 1 + langBytes.length,
//                textBytes.length);
//
//        return new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_TEXT,
//                new byte[0], data);
//
//    }
//
//    /**
//     * 액티비티가 사용자의 인터페이스를 받을 수 있는 경우.
//     *
//     * @Override(non-Javadoc)
//     * @author limsy
//     * @see android.app.Activity#onResume()
//     * @since 2013/02/04
//     */
//    protected void onResume() {
//        int sdkVersion = Integer.parseInt(Build.VERSION.SDK);
//
//        if (sdkVersion >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
//            setNdefPush();
//        } else if (sdkVersion >= Build.VERSION_CODES.GINGERBREAD_MR1
//                && sdkVersion < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
//            registLLCPStateReceiver();
//            mAdapter.enableForegroundNdefPush(this, mMessage);
//        }
//
//        super.onResume();
//    }
//
//    /**
//     * 액티비티가 사용자의 인터페이스를 받을 수 없는 경우.
//     *
//     * @Override(non-Javadoc)
//     * @author limsy
//     * @see android.app.Activity#onPause()
//     * @since 2013/02/04
//     */
//    protected void onPause() {
//        super.onPause();
//        int sdkVersion = Integer.parseInt(Build.VERSION.SDK);
//
//        if (sdkVersion >= Build.VERSION_CODES.GINGERBREAD_MR1
//                && sdkVersion < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
//            mAdapter.disableForegroundNdefPush(this);
//            mAdapter.disableForegroundDispatch(this);
//            unregistLLCPStateReceiver();
//        }
//    }
//
//    /**
//     * 백버튼 클릭한 경우.
//     *
//     * @Override(non-Javadoc)
//     * @author limsy
//     * @see android.app.Activity#onBackPressed()
//     * @since 2013/02/04
//     */
//    public void onBackPressed() {
//        super.onBackPressed();
//    }
//
//    // 리더기 응답 관련 등록 처리
//
//    /**
//     * Regist llcp state receiver.
//     *
//     * @author limsy
//     * @since 2013/02/04
//     */
//    private void registLLCPStateReceiver() {
//        IntentFilter intentFilter;
//
//        if (m_receiverLLCPState != null) {
//            unregistLLCPStateReceiver();
//        }
//
//        m_receiverLLCPState = new LLCPStateReceiver(this);
//        intentFilter = new IntentFilter();
//        if (m_receiverLLCPState != null && intentFilter != null) {
//            intentFilter
//                    .addAction(LLCPStateListener.M_ACTION_LLCP_LINK_STATE_CHANGED);
//            this.registerReceiver(m_receiverLLCPState, intentFilter);
//        } else {
//        }
//    }
//
//    // 리더기 응답 관련 등록 해제
//
//    /**
//     * Unregist llcp state receiver.
//     *
//     * @author limsy
//     * @since 2013/02/04
//     */
//    private void unregistLLCPStateReceiver() {
//        if (m_receiverLLCPState != null) {
//            this.unregisterReceiver(m_receiverLLCPState);
//            m_receiverLLCPState = null;
//        }
//    }
//
//    /**
//     * 리더기로부터 응답을 받는 콜백 함수.
//     *
//     * @param p_nState the p_n state
//     * @Override(non-Javadoc)
//     * @author limsy
//     * @since 2013/02/04
//     */
//    public void onChageLinkState(int p_nState) {
//        // 리더기 응답을 받았을 경우
//        if (p_nState == LLCPStateListener.M_LINK_STATE_DEACTIVATED) {
//            Log.e(TAG, "Ndef push 완료");
//        }
//    }
//
//    @Override
//    public NdefMessage createNdefMessage(NfcEvent nfcEvent) {
//        return null;
//    }
//}
